#include "CommandBase.h"
#include "Subsystems/BallFeeder.h"
#include "Subsystems/TubeGate.h"
#include "Subsystems/AirCompressor.h"
#include "Subsystems/DigitalCamera.h"
#include "Subsystems/DriveDirectionIndicator.h"
#include "Subsystems/DriveTrain.h"
#include "Subsystems/FlyWheels.h"
#include "Subsystems/GearBox.h"
#include "Subsystems/RampArm.h"
#include "Subsystems/Tube.h"

#include "Commands/Scheduler.h"

CommandBase::CommandBase(const char *name) : Command(name) {
}

CommandBase::CommandBase() : Command() {
}

// Initialize a single static instance of all of your subsystems to NULL
BallFeeder* CommandBase::ballFeeder = NULL;
TubeGate* CommandBase::tubeGate = NULL;
TheAirCompressor* CommandBase::compressor = NULL;
DigitalCamera* CommandBase::digiCam = NULL;
DriveDirectionIndicator* CommandBase::direction = NULL;
DriveTrain* CommandBase::drive = NULL;
FlyWheels* CommandBase::flyWheels = NULL;
GearBox* CommandBase::transmission = NULL;
RampArm* CommandBase::rampArm = NULL;
Tube* CommandBase::tube = NULL;

OI* CommandBase::oi = NULL;

void CommandBase::init() {
    // Create a single static instance of all of your subsystems. The following
	// line should be repeated for each subsystem in the project.
	ballFeeder = new BallFeeder();
	tubeGate = new TubeGate();
	compressor = new TheAirCompressor();
	digiCam = new DigitalCamera();
	direction = new DriveDirectionIndicator();
	drive = new DriveTrain();
	flyWheels = new FlyWheels();
	transmission = new GearBox();
	rampArm = new RampArm();
	tube = new Tube();
	
	oi = new OI();
	
	
}
